The present invention relates generally to systems configuration, and more particularly to integration of fast feedback into systems configuration.
Software control of complex systems has become prevalent. Examples may be drawn from a diverse range of applications. In the telecommunications field, the operations, administration, maintenance, and provisioning (OAM&P) of large-scale networks, for example, may be heavily dependent on software control. Activities may range from configuration of switches to handling of alarms to customer billing. In the chemical engineering field, operation of a processing plant, for example, may be heavily dependent on software control. Process variables such as flow rates, temperature, pressure, and time interval may all be controlled by software. A third example is in finance. Computerized transaction systems may provide near-real-time stock trades.
Although software control may automate the majority of processes in a complex system, user input is typically needed at various stages to configure (and re-configure) parts of the system. The frequency and complexity of user input varies widely with the application. For example, in a chemical plant, process variables may be quasistatic. In a telecommunications system, switch settings may need to be programmed every time a new customer is added. In a stock exchange, frequent user input is the norm for trades by individuals. Consequently, the user interface (UI) may be a critical component of a software control system.
In some applications, the user input may include the selection of an option from a small, fixed set of options. In telecommunications, for example, a network operation may be “Activate router port 45”, with input parameters “Yes/No”. In financial transactions, for example, the application may be “Display transaction history”, with input parameters “Last week/Last Month/Last Year”. In these instances, a graphical user interface (GUI) with a point-and-click selection of input parameter may suffice. In other applications, however, a user may need to enter extended character strings, in a format and syntax specified by the software control system. A common example is entry of a telephone number. In the US, a standard format is “(abc)def-hijk”, where the letters represent integers 0-9. In some computer transaction systems, however, the phone number must be entered in the format “abc-def-hijk”. If a user enters “(abc)def-hijk”, the computer transaction system may flag an error and direct the user to re-enter the telephone number in the required format.
In even more complex systems, however, errors often may not be discovered upon entry. For example, user input may consist of a program script, with multiple fields and options. Proper syntax (for example, sequence of fields, field widths, and delimiters) are often critical for the script to be properly parsed, and for the program to be properly executed. If a faulty script is executed, errors may not get caught until a downstream operation fails. For example, if a script is executed to provision a new telephone line for a customer, it would be advantageous for administrative software in the switch to directly verify correct provisioning. In many instances, however, correct provisioning may not be verified immediately, and an error in the provisioning process may not get caught until the customer complains of an out-of-service connection. The further downstream an error propagates, the more complex the troubleshooting may become. Downstream errors may also have more extensive consequences. For example, improper provisioning of a switch may cause multiple (including existing) connections to fail. In a worst case scenario, improper provisioning of a switch may cause the entire switch to become inoperative. What is needed is method and apparatus for providing near-real-time verification of user input to control software for systems configuration.